package com.lagou.lesson2.core.utils;

import com.lagou.lesson2.core.annotation.Transactional;

import java.lang.reflect.Method;

public class ReflectUtils {

//    public static boolean isAnnotationInClass(Class<?> clazz, Class<?> annotationClazz) {
//        Class<?> targetAnnotation = clazz.getAnnotation(annotationClazz);
//        if(targetAnnotation != null){
//            return true;
//        }
//        return false;
//    }
//
//    public static boolean isAnnotationInMethod(Class<?> clazz, Class<?> annotationClazz) {
//        Method[] declaredMethods = clazz.getDeclaredMethods();
//        if(declaredMethods!=null){
//            for (Method declaredMethod : declaredMethods) {
//                if(declaredMethod.getAnnotation(Transactional.class) != null) {
//                    return true;
//                }
//            }
//        }
//        return false;
//    }
//
//    public static boolean isAnnotationInMethodOrClass(Class<?> clazz, Class<?> annotationClazz) {
//        Class<?> targetAnnotation = clazz.getAnnotation(annotationClazz);
//        if(targetAnnotation != null){
//            return true;
//        }else{
//            Method[] declaredMethods = clazz.getDeclaredMethods();
//            if(declaredMethods!=null){
//                for (Method declaredMethod : declaredMethods) {
//                    if(declaredMethod.getAnnotation(Transactional.class) != null){
//                        return true;
//                    }
//                }
//            }
//        }
//        return false;
//    }
}
